Java数组

您所在的位置:网站首页 java 遍历 数组 Java数组

Java数组

2024-07-12 13:18| 来源: 网络整理| 查看: 265

遍历数组

目录

遍历数组

三种方式:

for循环遍历

foreach语句遍历

Arrays工具类中toString静态方法遍历

Arrays.deepToString()与Arrays.toString()的区别

Java中对Array数组的常用操作(了解即可)

三种方式:

for

for-each,

toString

题目描述

给一个数组:int Arr={{5,7,15},{8,4,11},{3,6,13}};

for循环遍历

通常遍历数组都是使用for循环来实现。遍历一维数组很简单,遍历二维数组需要使用双层for循环,通过数组的length属性可获得数组的长度。

for循环本质就是把数组中的每个数据打印出来。

程序:

package 数组; public class for遍历二维数组 { public static void main(String[] args) { // TODO Auto-generated method stub int Arr[][]={{5,7,15},{8,4,11},{3,6,13}}; for (int i = 0; i < Arr.length; i++) { for (int j = 0; j < Arr[i].length; j++) { System.out.print(Arr[i][j]+" "); } } } } ​ //运行结果: //5 7 15 8 4 11 3 6 13 foreach语句遍历

遍历数组就是获取数组的每个元素。通常遍历数组都是使用for循环来实现的,但是for循环不够简洁,下面我们简要介绍一下使用foreach语句来实现遍历数组的方法。

java5之后,Java提供了一种更简洁的循环:foreach循环,这种循环遍历数组和集合更加简洁。使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索(下标)引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。

语法格式:

for(type element: array) {    System.out.println(element); }

注: foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。 因此不要对foreach的循环变量赋值。

//例如:    public static void main(String [] args){ int [] arr={1,2,3,4,5};     for(int a:arr){                a=0;            System.out.print(a);       }       System.out.print(“\n”+a[0]); } 运行结果: 00000 1

从上面结果可以看出,由于在foreach循环中对数组进行赋值,结果导致不能正确遍历数组元素。而且当再次访问第一个数组元素时,发现数组元素依然没有改变。

程序:

package 数组; public class foreach遍历二维数组 { public static void main(String[] args) { // TODO Auto-generated method stub int Arr[][]= {{5,7,15},{8,4,11},{3,6,13}}; System.out.println("数组中的元素是 "); int i=0; for(int x[]: Arr) {//行 i++; int j=0; for(int e:x) {//列 j++; if(i==Arr.length&&j==x.length) { System.out.print(e);//输出最后一个元素,后面不加逗号 }else System.out.print(e+"、"); } } } ​ /*运行结果: 数组中的元素是 5、7、15、8、4、11、3、6、13 */ Arrays工具类中toString静态方法遍历

利用Arrays工具类中的toString静态方法可以将一维数组转化为字符串形式并输出。 已知打印一维数组的API为System.out.println ( Arrays.toString ();其参数为数组名或数组指针,其支持的数据类型有很多,如:int[]、char[]、byte[]等。

package 数组; ​ import java.util.Arrays; ​ public class toString遍历二维数组 { public static void main(String[] args) { // TODO Auto-generated method stub int Arr[][]={{5,7,15},{8,4,11},{3,6,13}};    System.out.println("Arr:"+Arrays.toString(Arr));    int b[][]={{5,7,15},{8,4,11},{3,6,13}};    System.out.println("Arr:"+Arrays.deepToString(b)); } /* 运行结果: Arr:[[I@15db9742, [I@6d06d69c, [I@7852e922] Arr:[[5, 7, 15], [8, 4,11], [3, 6, 13]] 注释: 注: *Arr:[[I@15db9742, [I@6d06d69c, [I@7852e922]* 这种输出结果是因为:Arr是一个二维数组。相当于一个长度为3的数组,但是这个数组的元素还是是数组。 当执行Arrays.toString的时候相当于遍历数组,并且输出数组的元素,但是这个数组的元素是数组,所以这里输出的是数组元素的地址。 */ Arrays.deepToString()与Arrays.toString()的区别

Arrays.deepToString()主要用于数组中还有数组的情况,而Arrays.toString()则相反,对于Arrays.toString()而言,当数组中有数组时,不会打印出数组中的内容,只会以地址的形式打印出来。

public class test { ​ public static void main(String[] args) { int a[] = {1, 2, 3}; System.out.println(Arrays.toString(a)); int b[][] = {{1, 2, 3}, {4, 5, 6}}; System.out.println(Arrays.toString(b)); System.out.println(Arrays.deepToString(b));} } /*结果: [1, 2, 3] [[I@14ae5a5, [I@7f31245a] [[1, 2, 3], [4, 5, 6]] */ Java中对Array数组的常用操作(了解即可) ​ import java.util.*; public class ArrayPrint { public static void main(String[] args){ //声明数组 String [] arr; int arr1[];   //初始化数组 int arr2[]=new int[]{1,2,3,4,5}; String[] array1={"马超","马云","关羽","刘备","张飞"}; String[] array2=new String[]{"黄渤","张艺兴","孙红雷","小猪","牙哥","黄磊"};       String[] array=new String[5];   //查看数组的长度 int length=array1.length; System.out.println("length: "+array1.length);   //输出数组 System.out.println(array1);     //结果:[Ljava.lang.String;@32f22097 System.out.println("arr2: "+Arrays.toString(arr2));   //遍历数组 for (int i = 0; i < array1.length; i++) {     System.out.println(array1[i]); } ​ //int数组转成string数组 int[]  array3={1,2,3,4,5,6,7,8,9,0}; String arrStrings=Arrays.toString(array3); System.out.println("arrStrings:"+arrStrings);   //从array中创建arraylist ArrayList arrayList=new ArrayList(Arrays.asList(array1)); System.out.println("arrayList:"+arrayList);   //数组中是否包含某一个值 String a="马超"; if (Arrays.asList(array1).contains(a)) {    System.out.println("马超在这里"); }   //将数组转成set集合 Set set=new HashSet(Arrays.asList(array2)); System.out.println("set:"+set);   //将数组转成list集合 List list_1=new ArrayList(); for (int i = 0; i < array2.length; i++) {    list_1.add(array2[i]); } System.out.println("list_1:"+list_1); ​ String[] arrStrings2={"1","2","3"}; List list2=Arrays.asList(arrStrings2); System.out.println("list2:"+list2);    //Arrays.fill()填充数组 int[] arr3=new int[5]; Arrays.fill(arr3, 10);  //将数组全部填充10 System.out.println("arr3:"+arr3); for (int i = 0; i < arr3.length; i++) {    System.out.println("arr3[i]:"+arr3[i]); } //数组排序 int[] arr4 = {3, 7, 2, 1, 9}; Arrays.sort(arr4); System.out.println("arr4:"+arr4); for (int i = 0; i < arr4.length; i++) {    System.out.println("arr4[i]:"+arr4[i]); }   int[] arr5 = {3, 7, 2, 1, 9,3,45,7,8,8,3,2,65,34,5}; Arrays.sort(arr5, 1, 4);  //从第几个到第几个之间的进行排序 for (int i = 0; i < arr5.length; i++) {    System.out.println("arr5[i]:"+arr5[i]); }    //复制数组 int[] arr6 = {3, 7, 2, 1}; int[] arr7=Arrays.copyOf(arr6, 10);  //指定新数组的长度   int[] arr8=Arrays.copyOfRange(arr6, 1, 3); //只复制从索引[1]到索引[3]之间的元素(不包括索引[3]的元素) for (int i = 0; i < arr8.length; i++) {    System.out.println(arr8[i]); }   //比较两个数组 int[] arr9 = {1, 2, 3, 4,5,6,7,8,9,0}; boolean arr10=Arrays.equals(arr6, arr9); System.out.println(arr10);   //去重复 //利用set的特性 int[] arr11 = {1, 2, 3, 4,5,6,7,8,9,0,3,2,4,5,6,7,4,32,2,1,1,4,6,3}; Set set2=new HashSet(); for (int i = 0; i < arr11.length; i++) {    set2.add(arr11[i]); }    System.out.println(set2); int[] arr12 = new int[set2.size()]; int j=0; for (Integer i:set2) {    arr12[j++]=i; } System.out.println(Arrays.toString(arr12)); } } /* 打印结果: 打印结果: length: 5 [Ljava.lang.String;@7852e922 arr2: [1, 2, 3, 4, 5] 马超 马云 关羽 刘备 张飞 arrStrings:[1, 2, 3, 4, 5, 6, 7, 8, 9, 0] arrayList:[马超, 马云, 关羽, 刘备, 张飞] 马超在这里 set:[小猪, 牙哥, 黄渤, 黄磊, 孙红雷, 张艺兴] list_1:[黄渤, 张艺兴, 孙红雷, 小猪, 牙哥, 黄磊] list2:[1, 2, 3] arr3:[I@4e25154f arr3[i]:10 arr3[i]:10 arr3[i]:10 arr3[i]:10 arr3[i]:10 arr4:[I@70dea4e arr4[i]:1 arr4[i]:2 arr4[i]:3 arr4[i]:7 arr4[i]:9 arr5[i]:3 arr5[i]:1 arr5[i]:2 arr5[i]:7 arr5[i]:9 arr5[i]:3 arr5[i]:45 arr5[i]:7 arr5[i]:8 arr5[i]:8 arr5[i]:3 arr5[i]:2 arr5[i]:65 arr5[i]:34 arr5[i]:5 7 2 false [0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9] */

原文链接:我爱你



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3